#ifndef CLIENTE_H_
#define CLIENTE_H_

#include <iostream>
#include <list>
#include "Paciente.h"
#include "Pacote.h"

    /**********************************************************************
        Classe: Cliente
        Funcionalidade: Guarda informações básicas sobre o cliente
        Autor: Alexandre Braga Saldanha
    ***********************************************************************/

using namespace std;

class Cliente {


  private:
     string nome;              // Nome do cliente
     string cpf;               // CPF do cliente
     list<Paciente> pacientes; // Pacientes relacionados ao cliente
     list<Pacote> pacotes;     // Pacotes relacionados ao cliente



  public:
     //Retorna os pacientes relacionados ao cliente
     list<Paciente> &getPacientes();

     //Retorna os pacotes relacionados ao cliente
     list<Pacote> &getPacotes();

     //Adiciona o nome do cliente
     void setNome(string n);

     //Adiciona o CPF do cliente
     void setCpf(string c);

     //Adiciona um novo paciente a ser relacionado com o cliente
     void novoPaciente(string n, int d = 0, int m = 0, int a = 0);

     //Remove um paciente relacionado com o cliente
     bool removerPaciente(string);

     //Adiciona um pacote ao cliente
     void adicionarPacote(Pacote pacote);

     //Retorna o nome do cliente
     string getNome();

     //Retorna o CPF do cliente
     string getCpf();

     //Construtor da classe Cliente
     Cliente(string n, string c);

     //Destrutor da classe Cliente
     ~Cliente();

};

#endif /* CLIENTE_H_ */
